@import 'ui-variables';
@import 'ui-mixins';

//
// Typography
// --------------------------------------------------

// Headings
// -------------------------

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: @font-family-heading;
  line-height: @line-height-heading;
  color: @text-color-heading;

  small,
  .small {
    line-height: 1;
  }
}

h1 {
  font-size: @font-size-h1;
  font-weight: @font-weight-semi-bold;
}
h2 {
  font-size: @font-size-h2;
  font-weight: @font-weight-blond;
}
h3 {
  font-size: @font-size-h3;
  font-weight: @font-weight-blond;
}
h4 {
  font-size: @font-size-h4;
}
h5 {
  font-size: @font-size-h5;
}
h6 {
  font-size: @font-size-h6;
}

h1,
h2,
h3 {
  margin-top: @line-height-computed;
  margin-bottom: (@line-height-computed / 2);

  small,
  .small {
    font-size: 65%;
  }
}
h4,
h5,
h6 {
  margin-top: (@line-height-computed / 2);
  margin-bottom: (@line-height-computed / 2);

  small,
  .small {
    font-size: 75%;
  }
}

// Body text
// -------------------------

a {
  color: @text-color-link;
}
a:hover {
  color: @text-color-link;
  cursor: default;
}
a:active {
  color: @text-color-link-active;
}
a:visisted {
  color: @text-color-link-active;
}

p {
  margin: 0 0 (@line-height-computed / 2);
}

.lead {
  margin-bottom: @line-height-computed;
  font-size: floor((@font-size-base * 1.15));
  font-weight: 300;
  line-height: 1.4;
}

// Emphasis & misc
// -------------------------

// Ex: (12px small font / 14px base font) * 100% = about 85%
small,
.small {
  font-size: floor((100% * @font-size-small / @font-size-base));
}

mark,
.mark {
  background-color: #fcf8e3;
  padding: 0.2em;
}

// Alignment
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}

// Transformation
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-capitalize {
  text-transform: capitalize;
}

// Contextual colors
.text-muted {
  color: @text-color-subtle;
}
.text-primary {
  .text-emphasis-variant(@accent-primary);
}
.text-success {
  .text-emphasis-variant(#3c763d);
}
.text-info {
  .text-emphasis-variant(#31708f);
}
.text-warning {
  .text-emphasis-variant(#8a6d3b);
}
.text-danger {
  .text-emphasis-variant(#a94442);
}

// Contextual backgrounds
// For now we'll leave these alongside the text classes until v4 when we can
// safely shift things around (per SemVer rules).
.bg-primary {
  // Given the contrast here, this is the only class to have its color inverted
  // automatically.
  color: #fff;
  .bg-variant(@accent-primary);
}
.bg-success {
  .bg-variant(#dff0d8);
}
.bg-info {
  .bg-variant(#d9edf7);
}
.bg-warning {
  .bg-variant(#fcf8e3);
}
.bg-danger {
  .bg-variant(#f2dede);
}

// Lists
// -------------------------

// Unordered and Ordered lists
ul,
ol {
  margin-top: 0;
  margin-bottom: (@line-height-computed / 2);
  ul,
  ol {
    margin-bottom: 0;
  }
}

// List options

// Unstyled keeps list items block level, just removes default browser padding and list-style
.list-unstyled {
  padding-left: 0;
  list-style: none;
}

// Inline turns list items into inline-block
.list-inline {
  .list-unstyled();
  margin-left: -5px;

  > li {
    display: inline-block;
    padding-left: 5px;
    padding-right: 5px;
  }
}

// Description Lists
dl {
  margin-top: 0; // Remove browser default
  margin-bottom: @line-height-computed;
}
dt,
dd {
  line-height: @line-height-base;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0; // Undo browser default
}

// Misc
// -------------------------

// Abbreviations and acronyms
abbr[title],
abbr[data-original-title] {
  // add data-* attribute to help out our tooltip plugin,
  //per https://github.com/twbs/bootstrap/issues/5257
  cursor: help;
  border-bottom: 1px dotted @gray-light;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}

// Addresses
address {
  margin-bottom: @line-height-computed;
  font-style: normal;
  line-height: @line-height-base;
}
